C语言 二围指针`帮改错!!

来源:百度知道 编辑:UC知道 时间:2024/06/18 22:25:06
#include<stdio.h>
#define M 10
#define N 10
int hmax(int **p[int k)
{int max=**(p+k),j;
for(j=0;j<N;j++)
if(max<*(*(p+k)+j))
max=*(*(p+k)+j);
return max;
}
int hmin(int **p,int k)
{int min=**(p+k),j;
for(j=0;j<N;j++)
if(min>*(*(p+k)+j))
min=*(*(p+k)+j);
return min;
}
int lmax(int **p,int k)
{int max=*(*(p)+k),j;
for(j=0;j<N;j++)
if(max<*(*(p+j)+k))
max=*(*(p+j)+k);
return max;
}
int lmin(int **p,int k)
{int min=*(*(p)+k),j;
for(j=0;j<N;j++)
if(min>*(*(p+j)+k))
min=*(*(p+j)+k);
return min;
}
void main()
{ int a[M][N],i,j;
for(i=0;i<M;i++)
for(j=0;j<N;j++)
a[i][j]=10*i+j+1;
for(i=0;i<M;i++)
{printf("第%d行最大值是%d\n",i+1,hmax(a,i));
}
for(i=0;i<M;i++)
{printf("第%d行最小值是%d\n",i+1,hmin(a,i));
}

//a[M][N] 它的指针变量是int(*p)[N]
#include<stdio.h>
#define M 10
#define N 10
int hmax(int (*p)[N],int k)
{int max=**(p+k),j;
for(j=0;j<N;j++)
if(max<*(*(p+k)+j))
max=*(*(p+k)+j);
return max;
}
int hmin(int (*p)[N],int k)
{int min=**(p+k),j;
for(j=0;j<N;j++)
if(min>*(*(p+k)+j))
min=*(*(p+k)+j);
return min;
}
int lmax(int (*p)[N],int k)
{int max=*(*(p)+k),j;
for(j=0;j<N;j++)
if(max<*(*(p+j)+k))
max=*(*(p+j)+k);
return max;
}
int lmin(int (*p)[N],int k)
{int min=*(*(p)+k),j;
for(j=0;j<N;j++)
if(min>*(*(p+j)+k))
min=*(*(p+j)+k);
return min;
}
void main()
{ int a[M][N],i,j;
for(i=0;i<M;i++)
for(j=0;j<N;j++)
a[i][j]=10*i+j+1;
for(i=0;i<M;i++)
{printf("第%d行最大值是%d\n",i+1,hmax(a,i));
}
for(i=0;i<M;i++)